Skip to content

Adopt package manager command classes - #1678

Closed
edvilme wants to merge 3 commits into
package-manager-command-testsfrom
package-manager-command-adoption
Closed

Adopt package manager command classes#1678
edvilme wants to merge 3 commits into
package-manager-command-testsfrom
package-manager-command-adoption

Conversation

@edvilme

@edvilme edvilme commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Adopts the package manager command classes introduced in #1621 and covered by the smoke tests in #1677 across Pip/UV, Conda, and Poetry.

Changes

  • Replaces existing command construction and execution paths with the new command classes.
  • Preserves existing command flags, environment targeting, version ordering, prerelease defaults, timeouts, and Poetry cwd behavior.
  • Removes superseded utility wrappers and obsolete tests tied to those utilities.

Dependency

This PR is stacked on #1677 and intentionally contains only the migration and cleanup commit. Review and merge #1621 and #1677 first; this PR can then be retargeted to main.

This replaces #1675, whose base branch could not be changed after GitHub registered it as part of the original stack.

Testing

  • npm run lint
  • npm run compile-tests
  • npm run unittest (1,451 passing, 4 pending)

@edvilme
edvilme force-pushed the package-manager-command-adoption branch from e1a77dd to fddd48b Compare July 28, 2026 21:38
@edvilme
edvilme force-pushed the package-manager-command-adoption branch from d25a1d1 to 2b9ae3c Compare July 28, 2026 22:01
@edvilme
edvilme force-pushed the package-manager-command-adoption branch from 2b9ae3c to 8ec3bba Compare July 28, 2026 22:14
@edvilme
edvilme force-pushed the package-manager-command-adoption branch from 8ec3bba to 6618b5d Compare July 28, 2026 22:20
@edvilme
edvilme force-pushed the package-manager-command-adoption branch from 6618b5d to c9eeaff Compare July 28, 2026 22:42
@edvilme edvilme added debt Code quality issues skip tests labels Jul 28, 2026
edvilme added a commit that referenced this pull request Jul 29, 2026
## Summary

Introduces the reusable command-object layer for package management
while leaving existing package-manager call sites unchanged.

## Scope

- Adds the `PackageManagerCommand` base class and shared execution
options.
- Adds abstract templates for install, uninstall, list, version,
available versions, and direct package names.
- Adds concrete Pip/UV, Conda, and Poetry implementations.
- Adds command factories, exports, and command-local execution helpers
required by those implementations.
- Preserves the existing executables, flags, environment targeting,
prerelease defaults, and list-command timeouts.

## Non-goals

This PR does not add command tests or migrate package managers to the
new classes. Those changes are isolated in follow-up PRs #1677 and
#1678.

## PR stack

1. This PR: command classes and implementations, based on `main`.
2. #1677: command smoke tests, based on this branch.
3. #1678: adoption and cleanup, based on #1677.

## Testing

- `npm run lint`
- `npm run compile-tests`
- `npm run unittest` (1,448 passing, 4 pending)
@edvilme
edvilme force-pushed the package-manager-command-adoption branch from c9eeaff to a135bc8 Compare July 31, 2026 21:01
@edvilme

edvilme commented Jul 31, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #1686, which targets main directly. Recreated to undo the GitHub-registered stack (base could not be retargeted). The branch is unchanged; only the PR base moved from package-manager-command-tests to main.

@edvilme edvilme closed this Jul 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

debt Code quality issues skip tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant